package libra;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;

import feign.Logger;

/**
 * SpringBoot启动入口 
 * @author libra
 */
//标注该类为SpringBoot的主配置类
@SpringBootApplication(exclude= {DataSourceAutoConfiguration.class})// 排除前端门户的数据库自动装配
//指定包扫描
@ComponentScan(value="libra")
// 扫描Servlet组件
@ServletComponentScan(value="libra")
/*
 * @EnableEurekaClient 与 @EnableDiscoveryClient
 * 在功能上是一致的：写在启动类的上，开启服务注册发现功能。
 * @EnableEurekaClient只适用于Eureka作为注册中心，@EnableDiscoveryClient 可以是其他注册中心。
 */
// 开启EurekaClient的注解，连接EurekaServer
//@EnableEurekaClient
@EnableDiscoveryClient
// 开启使用OpenFeign
@EnableFeignClients
public class MainStart_NacosSingle_Consumer_OpenFeign_30301 {
	public static void main(String[] args) {
		System.out.println("MainStart.main()");
		ConfigurableApplicationContext cac = SpringApplication.run(MainStart_NacosSingle_Consumer_OpenFeign_30301.class, args);
	}
	
	/**
	 * 配置OpenFeign的日志级别
	 * 配置完成后，需要在yml配置文件的logging.level节点下，配置OpenFeign接口全类名的日志输出级别
	 * 日志级别：
	 *     NONE：默认级别，不显示任何日志
	 *     BASIC：仅记录请求方法、URL、响应状态码 及 执行时间
	 *     HEADERS：除了Basic中定义的信息之外，还有请求、响应的头信息
	 *     FULL：除了Headers中定义的信息之外，还有请求、响应的正文及元数据
	 */
	@Bean
	public Logger.Level feignLoggerLevel(){
		return Logger.Level.FULL;
	}
}
